Zkouška 13.1.2014

setnicka at 2014-01-20 17:33:04

Zkouška teď vypadá trošku jinak, než je třeba na fóru z minulých let. Dříve nejdříve býval test s otázkami a pak teprve nějaká ústní část, letos byl test s otázkami zrušený a rovnou rozdával nějaká témata.

Většinou jde o to, že dostanete nějaký problém (já třeba dostal algebrogramy - jako DONALD + GERARD = ROBERT) a je potřeba navrhnout jakou metodu člověk použije a proč je pro ten problém vhodná, jak konkrétně převede problém do modelu dané metody (třeba že si to budu převádět do řeči výrokové logiky a jak konkrétně si to zapíšu) a jaké řešící algoritmy k tomu použiju.

To člověk napíše dopoledne a pak si Barták bere tak cca 20 minut na každého podle pořadí odevzdání (takže kdo odevzdá brzo, může to mít za dopoledne hotové, kdo odevzdá později, stihne si, než se na něj dostane, dojít na oběd). A klasická diskuze nad řešením + další otázky k tématu (já jsem třeba písemně napsal řešení pomocí WalkSATu a tak se mě ještě ptal na ten druhý algoritmus - DPLL). Celkově docela lehká zkouška.

Davpe at 2014-01-21 10:31:22

S dovolením přidám ještě mojí zkušenost :)

Zadání:
Máme na sobě tři kostky, A, B, C (nejvýš je C) tvořící věžičku. Vrchní kostku lze přesunout buď na jinou vrchní kostku nebo na stůl. Sestavte plán tak aby C leželo na A. Popište stavy a akce plánu. Kolika nejméně akcemi lze postavit C na A? Popiště zpětné plánování a demonstrujte jej na tomto problému.

Moje řešení:
predikáty:

  • on(x,y) - kostka y je na kostce x

  • ontable(x) - kostka x je na stole

  • top(x) - kostka(x) je na vrchu

operátory:
move_block2table(x)
přesune kostku x z věžičky na stůl
prc: top(x), !ontable(x), on(z, x)
ef: ontable(x), top(z)

move_block2block(x, y)
přesune kostku horní kostku x z jedné věžičky na kostku y jiné věžičky
prc: !ontable(x), on(z,x), top(x), top(y)
ef: top(z), !top(y), on(y,z)

move_from_table(x, y)
přesune kostku x ze stolu na kostku y
prc: ontable(x), top(x), top(y), x != y
ef: !ontable(x), on(y, x), !top(y)

počáteční stav: {ontable(A), on(A, B), on(B,C), top(C)}
chceme: on(A,C)

Zkouška:
Barták řešení pročetl, měl k tomu nějaké připomínky, chtěl zadefinovat (přesně) co je stav, čím je reprezentován, akce a operátory, rozdíl mezi nimi a jak jsou reprezentovány, co je cíl, akce použitelná na stav, výsledek akce, jak jsou reprezentovány preconditions a jak efekty, co problém rámce a jak je řešen v plánování, u zpětného řetězí pak zpětnou akci (což jsem hodně motal a tahal to ze mě až to nakonec řekl sám).

Zkouška je opravdu dlouhá, bylo nás tam 29, začátek v 9 hodin, odcházel jsem ve čtyři a ještě 5 lidí zbývalo. Doporučuji si tam vzít něco na ukrácení dlouhé chvíle.

Vzhledem k tomu že jsem seděl pár lavic od bartáka tak jsem měl možnost poslouchat i jiné lidi a tady je pár postřehů:
Zkouška je sice lehká ale spíš díky bartákově hodně mírnému hodnocení a napovídání. Chce spoustu věcí přesně (důkaz monotonost -> přípustnost u A* pomocí formulky), definice (nestačí ukazovat na váš příklad a říct co by dělala alfa-beta, jak akce u plánování přesune kostičky a co dělá forward checking na mapě austrálie ale umět to říct i pro obecný případ), algoritmy (algoritmus AC-x a jeho složitost pro různé hodnoty x, chování algoritmů krok po kroku - A*, minimax, takže se nestačí jen naučit jak to vypadá ale i co přesně to dělá). Nedá se to moc okecat, když se o to pokusíte začne to po vás chtít napsat, říct přesně definici nebo nakreslí obrázek a chce po vás abyste na něm krok po kroku ukázali jak algoritmus řeší tenhle problém.
Sám říkal že příklady jsou lehké a to že je vyřešíte v podstatě nic neznamená - je třeba vědět teorii okolo. Vyhodil dva lidi, jednoho protože mu plánování reprezentoval pomocí prohledávání stavového prostoru a když mu dal ještě jednu šanci to opravit, sice už tam měl plánování ale nevěděl že preconditions musí být podmnožinou stavu. Dalšího za to, že neuměl přesně zadefinovat co dělá přesně forward checking u CSP. Na druhou stranu, člověk co nevěděl jak se chová minimax, alfa beta, co je uklidnění a efekt horizontu (tedy v podstatě vše) dostal za 3 protože to z něj barták pomocí obrázku a napovídání nakonec vytáhl.
Píšu to proto že spousta lidí (včetně mě) s tím měla docela problém. Pokud to z vás Barták tahá, známka je 2, pro jedničku musíte povídat sami.